Storage drive dependent track removal in a cache for storage

ABSTRACT

In one embodiment, storage drive dependent track removal processing logic performs destage tasks for tracks cached in a cache as a function of whether the storage drive is classified as a fast class or as slow class of storage drives, for example. In one embodiment, a destage task configured for a slow class storage drive, transfers an entry for a track selected for destaging from a main cache list to a wait cache list to await destaging to the slow class drive. A destage task configured for a fast class storage drive allows the cache list entry for the selected track to remain on the main cache list while the selected track is being destaged to the fast class storage drive, thereby bypassing the transfer of the entry to a wait cache list. Other features and aspects may be realized, depending upon the particular application.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to a computer program product, system, andmethod for cache management of track removal in a cache for a storage.

2. Description of the Related Art

A cache management system buffers tracks in a storage device recentlyaccessed as a result of read and write operations in a memory oftenreferred to as a cache, which is typically faster than the storagedevice storing the requested tracks. Subsequent read requests to tracksin the faster access cache memory are returned at a faster rate thanreturning the requested tracks from the slower access storage, thusreducing read latency. The cache management system may also returncomplete to a write request when the modified track directed to thestorage device is written to the cache memory and before the modifiedtrack is written out to the storage device, such as a hard disk drive.The write latency to the storage device is typically significantlylonger than the latency to write to a cache memory. Thus, using cachealso reduces write latency.

A cache manager of a cache management system may maintain a linked listhaving one entry for each track stored in the cache, which may comprisewrite data buffered in cache before writing to the storage device, orread data. In the commonly used Least Recently Used (LRU) cachetechnique, if a track in the cache is accessed, i.e., a cache “hit”,then the entry in the LRU list for the accessed track is moved by acache manager to a Most Recently Used (MRU) end of the list. If therequested track is not in the cache, i.e., a cache miss, then the trackin the cache whose entry is at the LRU end of the list may be removed.Other techniques such as a “B-tree” algorithm may be used to sort theentries of a cache list representing the tracks cached in the cache.

The cache manager may remove tracks from the cache based on variouscriteria such as whether the cache is full and how many entries are onthe cache list. If the cache or cache list is deemed to be sufficientlyfull, the cache manager may spin off tasks to scan the cache list tolook for suitable tracks to remove from the cache. One removaloperation, often referred to as demoting a track, simply deletes thetrack from cache and deletes the corresponding entry from the cachelist. For example, a track containing read data may be demoted by acache manager.

Another track removal operation destages the track from cache forsending the track to storage. For example, a track containing write datamay be destaged from cache by the cache manager for storing in storage.Upon destaging the track from cache, the corresponding entry in thecache list is again deleted.

The cache manager typically uses a “lock,” often referred to as a “listlock” to lock the cache list to prevent modification of the cache listby other processors while the scan is in progress. As tracks areselected for destage from the cache list, the corresponding entries areremoved from the primary list, referred to herein as the “main” cachelist and moved into a separate, secondary list often referred to as a“wait cache” list to await completion of the destaging process. If theentries for tracks selected for destaging were not removed from the maincache list, then other destage tasks may encounter those entries andprocess the entries to determine if the tracks should be destaged. Upondetermining that tracks of entries have already been selected fordestaging, the other tasks will skip those entries and move on to thenext entry in the cache list. By removing the cache entries for thetracks selected for destaging from the main list, other tasks scanningthe main cache list do not encounter those entries for tracks selectedfor destaging. As a result, unnecessary processing of the cache listentries for tracks already selected for destaging may be reduced bymoving the cache entries for the selected tracks to the wait cache list.

To transfer an entry for a track selected for destaging from the maincache list to the wait cache list, the destage task typically acquiresthe list lock of the main cache list, removes the entry from the maincache list and releases the main cache list lock. In addition, thedestage task acquires the wait cache list lock, adds an entry to thewait cache list for the track selected for destaging, and releases thewait cache list lock.

SUMMARY

Storage drive dependent track removal processing in one aspect of thepresent description, includes methods and apparatus which determinewhether a storage drive is one of a first class and a second class ofstorage drives, and process tracks cached in a cache for track removalas a function of whether the storage drive is one of the first class andthe second class of storage drives. For example, in one embodiment, thesecond class of storage drives may be defined to have an input/outputspeed performance characteristic which exceeds a correspondinginput/output speed performance characteristic of the first class ofstorage drives.

In one embodiment, storage drive dependent track removal processingincludes performing destage tasks, each destage task selecting a trackfor destaging from the cache to the storage drive wherein the selectedtrack is represented by an entry of a first cache list of entriesrepresenting tracks cached in the cache. If the storage drive is of thefirst class, the destage task is configured to remove the entry from thefirst cache list and add it as a second entry to a second cache list ofentries wherein the second entry represents the selected track. Thedestage task configured for the storage drive of the first class furtherincludes destaging the track from the cache to the storage drive, andremoving the second entry from the second cache list.

If the storage drive is of the second class, the destage task isconfigured to permit the entry representing the track selected fordestaging to remain on the first cache list such that transferring theentry to a second cache list is bypassed if storage drive is of thesecond class. The destage task configured for the storage drive of thesecond class further includes destaging the track from the cache to thestorage drive, and removing the second entry from the first cache list.Other embodiments include corresponding computer systems, apparatus, andcomputer programs recorded on one or more computer storage devices, eachconfigured to perform the actions of the methods.

In another aspect of storage drive dependent track removal processing inaccordance with the present description, a storage drive may beclassified as a first class storage drive or a second class storagedrive depending upon whether the storage drive has an input/output speedperformance characteristic which exceeds a threshold. In one embodiment,the input/output speed performance characteristic of the storage driveis a function of an average latency of destaging a track from the cacheto the storage drive. In another aspect, a threshold for comparison is afunction of a duration of time taken to obtain a list lock for the firstcache list.

In yet another aspect of storage drive dependent task removal processingin accordance with the present description, cache management datastructures and destage tasks may be configured as a function of whetherthe storage drive has been classified as one of a first class and asecond class of storage drives. Implementations of the describedtechniques may include hardware, a method or process, or computersoftware on a computer-accessible medium.

Other features and aspects may be realized, depending upon theparticular application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a computing environment employingstorage drive dependent track removal processing in accordance with oneaspect of the present description.

FIG. 2 illustrates an example of a track utilized in the computingenvironment of FIG. 1.

FIG. 3 illustrates an embodiment of data structures configured forstorage drive dependent track removal processing in accordance with oneembodiment of the present description.

FIG. 4 illustrates an example of a cache list entry employed in a cachelist data structure of FIG. 3.

FIG. 5 illustrates an embodiment of operations for storage drivedependent track removal processing in accordance with one aspect of thepresent description.

FIG. 6 illustrates an embodiment of storage drive dependent trackremoval processing logic of a cache manager in accordance with oneaspect of the present description.

FIG. 7 illustrates an another embodiment of operations for storage drivedependent track removal processing in accordance with another aspect ofthe present description.

FIG. 8 illustrates a computer embodiment employing storage drivedependent track removal processing in accordance with the presentdescription.

DETAILED DESCRIPTION

A system of one or more computers can be configured to perform storagedrive dependent track removal operations for a cache in accordance withone aspect of the present description, by virtue of having software,firmware, hardware, or a combination of them installed on the systemthat in operation causes or cause the system to perform storage drivedependent track removal operations. For example, one or more computerprograms can be configured to perform storage drive dependent trackremoval operations for a cache by virtue of including instructions that,when executed by data processing apparatus, cause the apparatus toperform the actions.

One general aspect of storage drive dependent track removal operationsin accordance with the present description includes storage drivedependent track removal processing logic configured to determine whethera storage drive may be classified as one of a first class and a secondclass of storage drives, and to perform destage tasks for tracks cachedin a cache as a function of whether the storage drive is classified inthe first class or in the second class of storage drives. In oneembodiment, the storage drive dependent track removal processing logicmay include drive classification logic which classifies storage driveson the basis of performance characteristics, for example. Thus, thesecond class of storage drives may have an input/output speedperformance characteristic for example, which exceeds a correspondinginput/output speed performance characteristic of the first class ofstorage drives. Accordingly in this example, storage drives classifiedin the first class may be referred to generally as a “slow class” driveas compared to storage drives classified in the second class which maybe referred to generally as a “fast class” drive, for example. It isappreciated that in storage drive dependent track removal processing inaccordance with the present description, storage drives may beclassified into two or more classifications using other classificationcriteria, depending upon the particular application.

In another aspect, the storage drive dependent track removal processinglogic may further include destage task configuration logic to configuredestage tasks on the basis of the classification of the storage drivefor which the destage task is to be performed. For example, each destagetask may scan a cache list for the storage drive to select a track whichis to be destaged from cache. If the storage drive has been classifiedas a slow class drive, the destage task if configured for a slow classstorage drive, removes the entry for the selected track from the “main”cache list and adds it to a secondary cache list (referred to herein asthe “wait cache” list) to await destaging to the slow class drive. As aresult, other tasks scanning the main cache list will not encounter thecache list entry which has been removed from the main cache list whilethe selected track awaits destaging. Consequently, task efficiency andresource utilization may be improved in many applications. Oncedestaging of the selected track from the cache to the slow class storagedrive has been completed, the cache list entry for that track which hadbeen added to the wait cache list, may be removed from the wait cachelist.

Conversely, if the storage drive has been classified as a fast classdrive, a destage task configured for a fast class storage drive allowsthe cache list entry for the selected track to remain on the main cachelist while the selected track is being destaged to the fast classstorage drive. Once destaging of the selected track from the cache tothe fast class storage drive has been completed, the cache list entryfor that track which was allowed to remain on the main cache list, maybe removed from the main cache list.

It is appreciated herein that where the storage drive to which theselected track is being destaged is classified as a fast class drive,the destage task may be completed in a relatively short amount of time.Hence, the amount of time that the entry for the selected track remainson the main cache list while the selected track is destaged to the fastclass storage drive, may correspondingly be short in duration. As aresult, the number of other tasks which might encounter the entry forthe selected track on the main cache list may be significantly reducedfor a fast class storage drive as compared to the likely number of suchencounters should an entry for a track being destaged to a slow classdrive, be permitted to remain on the main cache list.

In another aspect of the present description, it is recognized that onesuitable criterion for classifying fast class storage drives versus slowclass storage drives may be a function of a comparison of the averagelatency to destage a track to a storage drive, to the average amount oftime to obtain a list lock for cache lists. It is appreciated thattransferring a cache list entry from the main cache list to a wait cachelist, typically employs obtaining and releasing two cache list locks, afirst cache list lock, that is, the main cache list lock, to remove theentry from the main cache list, and a second cache list lock, that is,the wait cache list lock, to add the entry to the wait cache list. Bycomparison, a destage task configured for a fast class storage drive inone embodiment, bypasses removing the entry from the main cache list andadding an entry to the wait cache list.

Thus, it is recognized that in one embodiment, in a destage taskconfigured for a storage drive classified as a fast class storage drive,the obtaining and releasing of two list locks may be bypassed.Accordingly, one suitable criterion for classifying fast class storagedrives versus slow class storage drives for storage drive dependenttrack removal processing in accordance with the present description, maybe a function of a comparison of the average latency to destage a trackto a storage drive, to a value calculated as twice the average amount oftime to obtain a list lock for cache lists. If the average latency todestage a track to a storage drive is less than twice the average amountof time to obtain a list lock for cache lists, the storage drive may beclassified as a fast class storage drive in this example. Conversely, ifthe average latency to destage a track to a storage drive, is greaterthan twice the average amount of time to obtain a list lock for cachelists, the storage drive may be classified as a slow class storage drivein this example.

It is appreciated that other criteria may be used to classify storagedrives for storage drive dependent track removal processing inaccordance with the present description, depending upon the particularapplication. For example, if the average latency to destage a track to astorage drive, is greater than N times the average amount of time toobtain a list lock for cache lists, the storage drive may be classifiedas a slow class storage drive in this example, where N is a variable. Inone example, the variable N is 2 as described above. In another example,the variable N may be in value within a range such as a range of 1 to 4,for example. Moreover, other performance characteristics may be utilizedto classify storage drives for storage drive dependent track removalprocessing in accordance with the present description, depending uponthe particular application. For example, a performance characteristic ofa storage drive may be compared to a threshold such that storage driveshaving performance characteristics which exceed the threshold areclassified in one class of storage drives and storage drives having aperformance characteristic which does not exceed the threshold, areclassified in another storage drive classification.

Implementations of the described techniques may include hardware, amethod or process, or computer software on a computer-accessible medium.FIG. 1 illustrates an embodiment of a computing environment employingstorage drive dependent track removal processing in accordance with thepresent description. A plurality of hosts 2 a, 2 b . . . 2 n may submitInput/Output (I/O) requests to a storage controller or storage controlunit 4 over a network 6 to access data at volumes 8 (e.g., Logical UnitNumbers, Logical Devices, Logical Subsystems, etc.) in storagerepresented by a plurality of storage drives 10 a, 10 b. The storagecontroller 4 includes a processor complex 12, including one or moreprocessors with single or multiple cores, one or more caches 14, one ormore cache backup devices 16, to backup tracks in the cache 14. Thecache 14 caches cache data transferred between the hosts 2 a, 2 b . . .2 n and the storage drives 10 a, 10 b. In this manner, the cache 14maintains tracks in the storage subject to Input/Output (I/O) requests.The cache backup device 16 may provide non-volatile storage of tracks inthe cache 14. In a further embodiment, the cache backup device 16 may belocated in a cluster or hardware on a different power boundary than thatof the cache 14.

The storage controller 4 has a memory 20 that includes a storage manager22 for managing the transfer of tracks transferred between the hosts 2a, 2 b . . . 2 n and the storage 10 a, 10 b and a cache manager 24 thatmanages data transferred between the hosts 2 a, 2 b . . . 2 n and thestorage drives 10 a, 10 b in the cache 14 and a cache backup device 16.A track as represented by a track 25 (FIG. 2) may comprise any unit ofdata configured in the storage 10 a, 10 b, such as a track, LogicalBlock Address (LBA), etc., which is part of a larger grouping of tracks,such as a volume, logical device, etc. The cache manager 24 (FIG. 1)maintains cache management data structures 26 to manage read(unmodified) and write (modified) tracks in the cache 14. A cache backupdevice index 30 provides an index of track identifiers to a location inthe cache backup device 16.

The storage manager 22 and cache manager 24 are shown in FIG. 1 asprogram code loaded into the memory 20 and executed by the processorcomplex 12. Alternatively, some or all of the functions may beimplemented in hardware devices in the storage controller 4, such as inApplication Specific Integrated Circuits (ASICs).

In some embodiments, the cache 14 may store tracks in a log structuredarray (LSA), where tracks are written in a sequential order as received,thus providing a temporal ordering of the tracks written to the cache14. In a LSA, later versions of tracks already present in the LSA arewritten at the end of the LSA. In alternative embodiments, the cache 14may store data in formats other than in an LSA.

In one embodiment, the cache 14 may comprise a Random Access Memory(RAM), such as a Dynamic Random Access Memory (DRAM), or may comprise aflash memory, such as a solid state device, or both, and the storagedrives 10 a, 10 b may be comprised of one or more sequential accessstorage devices, such as hard disk drives and magnetic tape or mayinclude non-sequential access storage devices such as solid state drives(SSD), for example. Each storage drive 10 a, 10 b may comprise a singlesequential or non-sequential access storage device or may comprise anarray of storage devices, such as a Just a Bunch of Disks (JBOD), DirectAccess Storage Device (DASD), Redundant Array of Independent Disks(RAID) array, virtualization device, etc. In one embodiment, the cache14 is a faster access device than the storage drives 10 a, 10 b.Further, the cache 14 may have a greater cost per unit of storage thanstorage devices in the storage drives 10 a, 10 b.

As explained in greater detail below, in this example, the storage drive10 a is classified as a slow class storage drive and the storage drive10 b is classified as a fast class storage drive. Accordingly, in oneembodiment, the fast class storage drive 10 b may have superiorinput/output performance characteristics as compared to the slow classstorage drive 10 a, particularly with respect to destaging tracks fromthe cache 14 to the respective storage drives 10 a, 10 b. Thus, in oneexample, the storage drive 10 a may be a hard disk drive and the storagedrive 10 b may be a solid state drive, for example, having fasterinput/output characteristics than the storage drive 10 a. However, it isappreciated that the storage drives 10 a, 10 b may comprise other typesof sequential or non-sequential access storage devices depending uponthe particular application. Although described in connection with twostorage drives and two associated storage drive classifications, it isfurther appreciated that storage drive dependent track removal inaccordance with the present description may have a greater number ofstorage drives or a greater number of storage drive classifications, orboth, depending upon the particular application.

The cache 14 may be part of the memory 20 or implemented in a separatememory device, such as a DRAM. In one embodiment, the cache backupdevice 16 may comprise a non-volatile backup storage (NVS), such as anon-volatile memory, e.g., battery backed-up Random Access Memory (RAM),static RAM (SRAM), etc.

The network 6 may comprise a Storage Area Network (SAN), a Local AreaNetwork (LAN), a Wide Area Network (WAN), the Internet, and Intranet,etc.

FIG. 3 illustrates an embodiment of the cache management data structures26 including slow class drive cache management data structures 104 tosupport cache operations for tracks of the slow class storage drive 10a. The cache management data structures 26 further includes fast classdrive cache management data structures 108 to support cache operationscaching for tracks of the fast class storage drive 10 b.

In this embodiment, the slow class drive cache management datastructures 104 include a first cache list referred to here as a “maincache list” 114 providing a list of modified sequential andnon-sequential tracks in a portion of the cache 14 allocated to cachetracks from a slow class storage drive such as the slow class storagedrive 10 a (FIG. 1), for example. Thus, each entry as represented by thecache list entry 120 of FIG. 4 identifies one or more tracks which havebeen cached in an allocated portion of the cache 14 (FIG. 1). The tracksidentified by the main cache list 114 (FIG. 3) were cached from a slowclass storage drive, such as the storage drive 10 a of FIG. 1. Theentries of the main cache list 114 may be ordered using a suitablealgorithm. For example, cache list entries for tracks cached from anonvolatile storage (NVS) are frequently ordered using B-tree algorithmand cache list entries for tracks cached from a non-NVS storage arefrequently ordered using a least recently used (LRU) algorithm. Otheralgorithms may be used to order cache list entries, depending upon theparticular application.

In certain embodiments, a portion of the cache backup device 16 isallocated for each storage drive having tracks cached in the cache 14,to store backup copies of tracks cached in the cache 14. Upondetermining that the portion of the cache backup device 16 allocated tothe slow class storage drive 10 a is full or the main cache list 114 isfull, the main cache list 114 for modified tracks may be used to destagemodified tracks from the cache 14 to the slow class storage drive 10 a,so that the copy of those tracks in the cache backup device 16 may bediscarded to make room in the cache backup device 16 for new modifiedtracks. In some embodiments, the slow class drive cache management datastructures 104 may further include a spatial index (not shown) providinga spatial ordering of the modified tracks based on the physicallocations in the storage 10 a at which the modified tracks are stored.

In this embodiment, the fast class drive cache management datastructures 108 similarly include a first cache list referred to here asa “main cache list” 130 providing a list of modified sequential andnon-sequential tracks in a portion of the cache 14 allocated to cachetracks from a fast class storage drive such as the fast class storagedrive 10 b (FIG. 1), for example. Here too, each entry as represented bythe cache list entry 120 of FIG. 4 identifies one or more tracks whichhave been cached in an allocated portion of the cache 14 (FIG. 1). Thetracks identified by the main cache list 130 (FIG. 3) were cached for afast class storage drive, such as the storage drive 10 b of FIG. 1. Heretoo, the entries of the main cache list 130 may be ordered using asuitable algorithm such as a B-tree or LRU algorithm, for example, asdiscussed above. Other algorithms may be used to order cache listentries, depending upon the particular application.

In certain embodiments, upon determining that the portion of the cachebackup device 16 allocated to the fast class storage drive 10 b is fullor that the main cache list 130 is full, the main cache list 130 formodified tracks may be used to destage modified tracks from the cache 14to the fast class storage drive 10 b, so that the copy of those tracksin the cache backup device 16 may be discarded to make room in the cachebackup device 16 for new modified tracks for the fast class storagedrive 10 b. In some embodiments, the fast class drive cache managementdata structures 108 may further include a spatial index (not shown)providing a spatial ordering of the modified tracks based on thephysical locations in the storage 10 b at which the modified tracks arestored.

In accordance with one aspect of the present description, the slow classdrive cache management data structures 104 further include a secondcache list referred to herein as a “wait cache list” 134 providing aselected list of modified sequential and non-sequential tracks cached ina portion of the cache 14 allocated to the slow class storage drive 10 a(FIG. 1), for example, and awaiting destaging. Accordingly, uponselecting a track from the list of entries of the main cache list 114for destaging, the entry for the selected track is transferred from themain cache list 114 to the wait cache list 134 to await completion ofthe destaging operation for the selected track, which destages theselected track to the slow class. As a result, other tasks scanning themain cache list 114 will not encounter the cache list entry which hasbeen removed from the main cache list 114 while the selected trackawaits destaging on the wait cache list 134.

Conversely, in accordance with another aspect of the presentdescription, the fast class drive cache management data structures 108lack a second cache list referred to here as a “wait cache list”. Uponselecting a track for destaging from the main cache list 130 for thefast class storage drive 10 b, instead of transferring the entry for theselected track from the list of entries of the main cache list 130 to await cache list to await destaging, the entry for the selected track ispermitted to remain on the main cache list 130 to await completion ofthe destaging operation for the selected track, which destages theselected track to the fast class storage drive.

It is appreciated herein that a destage task directed to a fast classstorage drive such as the storage drive 10 b, for example, may becompleted in a relatively short amount of time. Hence, the amount oftime that the entry for the selected track remains on the main cachelist 130 while the selected track is destaged to the fast class storagedrive 10 b, may correspondingly be short in duration. As a result, thenumber of other tasks which might encounter the entry for the selectedtrack on the main cache list 130 may be significantly reduced for thefast class storage drive 10 b as compared to the likely number of suchencounters should an entry for a track being destaged to the slow classdrive 10 a, be permitted to remain on the main cache list 114, forexample.

In the illustrated embodiment, each list 114, 130, and 134 has anassociated pointer 114 a, 130 a, and 134 a which points to the locationof an entry of the associated list 114, 130, and 134. Each pointer 114a, 130 a, and 134 a permits a cache manager, such as the cache manager24, to release an associated list lock 114 b, 130 b, and 134 b, when atrack has been identified during a scan of candidate entries of theassociated list 114, 130, and 134, as a track suitable for track removalprocessing such as destaging the track, for example. By releasing thelist lock, the cache manager allows other processors to have access tothe list while the identified track is processed for track removal. Inone embodiment, before the list lock is released, the position of theprevious entry in the list may be stored in the associated cursor orpointer so that the pointer value points to the prior entry in the list.Once the list lock is released, the track identified for track removalprocessing may be processed to remove the track from cache. Once thetrack removal processing of the identified track is completed, the listlock may be reacquired and the scan may be resumed at the list entryidentified by the pointer.

It is appreciated that the cache management data structures may havedata structures other than those depicted in FIG. 3. For example, atrack index (not shown) may provide an index of tracks in the cache 14to control blocks in a control block directory (not shown). Otherexamples include an unmodified sequential list (not shown) providing atemporal ordering of unmodified sequential tracks in the cache 14, andan unmodified non-sequential LRU list (not shown) providing a temporalordering of unmodified non-sequential tracks in the cache 14. It isappreciated that a cache may have lists organized in a variety offormats, depending upon the particular application.

FIG. 5 depicts one example of operations of a cache manager such as thecache manager 24 employing storage drive dependent track removalprocessing in accordance with the present description. The operations ofFIG. 5 are performed by a storage drive dependent track removalprocessing logic 200 (FIG. 6) in this embodiment.

In connection with adding or otherwise discovering (block 210, FIG. 5) astorage drive, the storage drive dependent track removal processinglogic 200 (FIG. 6) may be configured to determine (block 214, FIG. 5)whether the discovered storage drive is to be classified as one of afirst class and a second class of storage drives. As explained below inconnection with FIG. 7, the storage drive dependent track removalprocessing logic 200 (FIG. 6) may be further configured to performdestage tasks for tracks cached in a cache, which have been configuredas a function of whether the storage drive is classified in the firstclass or in the second class of storage drives.

In one embodiment, the storage drive dependent track removal processinglogic 200 (FIG. 6) may include drive classification logic 220 which isconfigured to classify (block 214, FIG. 5) storage drives on the basisof performance characteristics, for example. Thus, the second class ofstorage drives may have an input/output speed performance characteristicfor example, which exceeds a corresponding input/output speedperformance characteristic of the first class of storage drives.Accordingly in this example, storage drives classified in the firstclass may be referred to generally as a “slow class” drive as comparedto storage drives classified in the second class may be referred togenerally as a “fast class” drive, for example. It is appreciated thatin storage drive dependent track removal processing in accordance withthe present description, storage drives may be classified into two ormore classifications using other classification criteria, depending uponthe particular application.

Depending upon the resultant classification of the discovered storagedrive, cache management data structures and destage tasks may beselectively configured for destaging tracks to a storage drive of thatclassification. For example, if the discovered storage drive isclassified (block 214, FIG. 5) as a slow class storage drive, cachemanagement data structure configuration logic 234 (FIG. 6) of thestorage drive dependent track removal processing logic 200, isconfigured to arrange or otherwise configure (block 230, FIG. 5) datastructures appropriate to cache management of a slow class storagedrive. For example, as shown in FIG. 2, the slow class cache managementdata structures 104 have been configured (block 230) to include both amain cache list 114 and a wait cache list 134 to which track entries maybe transferred from the main cache list 114 to the wait cache list 134.

Conversely, if the discovered storage drive is classified (block 214,FIG. 5) as a fast class storage drive, cache management data structureconfiguration logic 234 (FIG. 6) of the storage drive dependent trackremoval processing logic 200, is configured to arrange or otherwiseconfigure (block 240) data structures appropriate to cache management ofa fast class storage drive. For example, as shown in FIG. 2, the fastclass cache management data structures 108 have been configured (block240) to include a main cache list 130 but lack a wait cache list sincetransfer of entries to a wait cache list is bypassed for entriesawaiting destaging to a fast class storage drive in one embodiment.

As previously mentioned, depending upon the resultant classification ofthe discovered storage drive, destage tasks may also be selectivelyconfigured for destaging tracks to a storage drive of thatclassification. For example, if the discovered storage drive isclassified (block 214, FIG. 5) as a slow class storage drive, cachemanagement destage task configuration logic 244 (FIG. 6) of the storagedrive dependent track removal processing logic 200, is configured toarrange or otherwise configure (block 250) destage tasks appropriate todestaging tracks to a slow class storage drive. Destage tasksappropriate to destaging tracks to a slow class storage are described ingreater detail in connection with FIG. 7 below.

Conversely, if the discovered storage drive is classified (block 214,FIG. 5) as a fast class storage drive, cache management destage taskconfiguration logic 244 (FIG. 6) of the storage drive dependent trackremoval processing logic 200, is configured to arrange or otherwiseconfigure (block 254) destage tasks appropriate to destaging tracks to afast class storage drive. Destage tasks appropriate to destaging tracksto a fast class storage are also described in greater detail inconnection with FIG. 7 below.

FIG. 7 depicts another example of operations of a cache manager such asthe cache manager 24 employing storage drive dependent track removalprocessing in accordance with the present description. The operations ofFIG. 7 are performed by a storage drive dependent track removalprocessing logic 200 (FIG. 6) in this embodiment.

The storage drive dependent track removal processing logic 200 (FIG. 6)is configured to initiate and perform a destage task to select (block300) a track for destaging from a cache to a storage drive which hasbeen appropriately classified as a slow class drive or a fast classdrive. In this example, a destage task being performed has beenconfigured on the basis of the classification of the storage drive towhich the track is to be destaged.

As described above, a storage drive may be classified as a slow classdrive or as a fast class drive upon initial discovery of the storagedrive in the system. Hence, the classification of the storage driveassociated with the destage task may be determined by referring to theresults of the classification operation (block 214, FIG. 5) for thatstorage drive. Thus, the results of the classification operation (block214, FIG. 5) for that storage drive may be stored in a suitable datastructure of the data structures 104, 108, to identify theclassification of the storage drive associated with a particular cachelist or may be stored in each entry of the associated cache list, forexample.

Moreover, cache lists may be configured for individual storage driveswhich have been classified as discussed above in connection with FIG. 3.Thus, in one embodiment, the classification of the storage drive towhich a particular cache list is directed may be determined (block 304,FIG. 7) by the identity of the cache list being scanned by the destagetask. Accordingly, the classification of the storage drive for a destagetask scanning main cache list 114 may be determined (block 304) to be aslow class since the main cache list 114 is associated with the storagedrive 10 a which has been classified as a slow class drive. Similarly,the classification of the storage drive for a destage task scanning maincache list 130 may be determined (block 304) to be a fast class sincethe main cache list 130 is associated with the storage drive 10 b whichhas been classified as a fast class drive.

If the storage drive associated with the selected (block 300) track isdetermined (block 304) to have been classified as a slow class drive,the storage drive dependent track removal processing logic 200 (FIG. 6)is configured to perform a destage task configured for a slow classstorage drive in which the destage task transfers (block 310, FIG. 7)the entry for the selected track from the “main” cache list such as maincache list 114, FIG. 3, for example, and adds it to a secondary cachelist (referred to herein as the “wait cache” list, such as the waitcache list 134. FIG. 3, for example) to await destaging (block 314, FIG.7) to the slow class drive 10 a. As a result, other tasks scanning themain cache list will not encounter the cache list entry which has beenremoved from the main cache list 114 while the selected track awaitsdestaging. Consequently, task efficiency and resource utilization may beimproved in many applications. The storage drive dependent track removalprocessing logic 200 (FIG. 6) is further configured to, in connectionwith completion (block 320, FIG. 7) of the destaging of the selectedtrack from the cache to the slow class storage drive 10 a, to remove(block 324) the cache list entry for the selected track which had beenadded to the wait cache list 134, from the wait cache list 134 and end(block 330, FIG. 7) the destage task configured for the slow class drive10 a.

Conversely, if the storage drive has been classified as a fast classdrive, the storage drive dependent track removal processing logic 200(FIG. 6) is configured to perform a destage task configured for a fastclass storage drive such as the storage drive 10 b, for example, whichallows the cache list entry for the selected track to remain on the maincache list 130 while the selected track is being destaged (block 340) tothe fast class storage drive 10 b. Accordingly, the entry transferoperations (block 310, FIG. 7) described above in connection with adestage task configured for a slow class storage drive, are bypassed(not performed) in a destage task configured for a fast class storagedrive in one embodiment. The storage drive dependent track removalprocessing logic 200 (FIG. 6) is further configured to, in connectionwith completion (block 344, FIG. 7) of the destaging (block 340) of theselected track from the cache to the fast class storage drive 10 b,remove (block 350) the cache list entry for that track which was allowedto remain on the main cache list 130, from the main cache list 130 andend (block 354, FIG. 7) the destage task configured for the fast classdrive 10 b.

It is appreciated herein that where the storage drive to which theselected track is being destaged is classified as a fast class drive,the destage task may be completed in a relatively short amount of time.Hence, the amount of time that the entry for the selected track remainson the main cache list 130 while the selected track is destaged to thefast class storage drive, may correspondingly be short in duration. As aresult, the number of other tasks which might encounter the entry forthe selected track on the main cache list 130 may be significantlyreduced for a fast class storage drive as compared to the likely numberof such encounters should an entry for a track being destaged to a slowclass drive, be permitted to remain on the main cache list 114.

In another aspect of the present description, the drive classificationlogic 220 (FIG. 6) is configured in one embodiment, to classify (block214, FIG. 5) storage drives as a function of a comparison of the averagelatency to destage a track to a storage drive, to the average amount oftime to obtain a list lock for cache lists. It is appreciated thattransferring a cache list entry from the main cache list 114 (FIG. 3) toa wait cache list 134, may employ obtaining and releasing two cache listlocks that is, the main cache list lock 114 b, to remove the entry fromthe main cache list 114, and a second cache list lock, that is, the waitcache list lock 134 b, to add the entry to the wait cache list 134. Bycomparison, a destage task configured for a fast class storage drive inone embodiment, bypasses both removing the entry from the main cachelist 130 and adding an entry to a different cache list such as a waitcache list.

Thus, it is recognized that in one embodiment, for a storage driveclassified as a fast class storage drive, the obtaining and releasing oftwo list locks may be bypassed. Accordingly, the drive classificationlogic 220 (FIG. 6) is configured in one embodiment to classify fastclass storage drives versus slow class storage drives for storage drivedependent track removal processing in accordance with the presentdescription, as a function of a comparison of the average latency todestage a track to a storage drive, to twice the average amount of timeto obtain a list lock for cache lists. If the average latency to destagea track to a storage drive 10 b, for example, is less than twice theaverage amount of time to obtain a list lock 130 b for a cache list 130,the storage drive 10 b may be classified as a fast class storage drivein this example. Conversely, if the average latency to destage a trackto a storage drive such as the storage drive 10 a, for example, isgreater than twice the average amount of time to obtain a list lock 114b for a cache list 114, the storage drive 10 a may be classified as aslow class storage drive in this example.

It is appreciated that other criteria may be used to classify storagedrives for storage drive dependent track removal processing inaccordance with the present description, depending upon the particularapplication. For example, the drive classification logic 220 (FIG. 6)may be configured in one embodiment to classify fast class storagedrives versus slow class storage drives for storage drive dependenttrack removal processing in accordance with the present description, asa function of a whether the average latency to destage a track to astorage drive, is greater than N times the average amount of time toobtain a list lock for cache lists and if so, the storage drive may beclassified as a slow class storage drive in this example, where N is avariable. In one example, the variable N may be in a range of 1 to 4,for example. Moreover, other performance characteristics may be utilizedto classify storage drives for storage drive dependent track removalprocessing in accordance with the present description, depending uponthe particular application. For example, a performance characteristic ofa storage drive may be compared to a threshold such that storage driveswhich exceed the threshold are classified in one class of storage drivesand storage drives having a performance characteristic which does notexceed the threshold, are classified in another storage driveclassification.

The computational components of FIGS. 1, 3 and 6 including the hosts 2a, 2 b . . . 2 n, the storage controller or storage control unit 4 andthe cache manager 24, may each be implemented in one or more computersystems, such as the computer system 402 shown in FIG. 8. Computersystem/server 402 may be described in the general context of computersystem executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.Computer system/server 402 may be practiced in distributed cloudcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed cloud computing environment, program modules may be locatedin both local and remote computer system storage media including memorystorage devices.

As shown in FIG. 8, the computer system/server 402 is shown in the formof a general-purpose computing device. The components of computersystem/server 402 may include, but are not limited to, one or moreprocessors or processing units 404, a system memory 406, and a bus 408that couples various system components including system memory 406 toprocessor 404. Bus 408 represents one or more of any of several types ofbus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, and a processor or localbus using any of a variety of bus architectures. By way of example, andnot limitation, such architectures include Industry StandardArchitecture (ISA) bus, Micro Channel Architecture (MCA) bus, EnhancedISA (EISA) bus, Video Electronics Standards Association (VESA) localbus, and Peripheral Component Interconnects (PCI) bus.

Computer system/server 402 typically includes a variety of computersystem readable media. Such media may be any available media that isaccessible by computer system/server 402, and it includes both volatileand non-volatile media, removable and non-removable media.

System memory 406 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) 410 and/or cachememory 412. Computer system/server 402 may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 413 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM or other optical media can be provided.In such instances, each can be connected to bus 408 by one or more datamedia interfaces. As will be further depicted and described below,memory 406 may include at least one program product having a set (e.g.,at least one) of program modules that are configured to carry out thefunctions of embodiments of the invention.

Program/utility 414, having a set (at least one) of program modules 416,may be stored in memory 406 by way of example, and not limitation, aswell as an operating system, one or more application programs, otherprogram modules, and program data. Each of the operating system, one ormore application programs, other program modules, and program data orsome combination thereof, may include an implementation of a networkingenvironment. The components of the computer 402 may be implemented asprogram modules 416 which generally carry out the functions and/ormethodologies of embodiments of the invention as described herein. Thesystem of FIG. 1 may be implemented in one or more computer systems 402,where if they are implemented in multiple computer systems 402, then thecomputer systems may communicate over a network.

Computer system/server 402 may also communicate with one or moreexternal devices 418 such as a keyboard, a pointing device, a display420, etc.; one or more devices that enable a user to interact withcomputer system/server 402; and/or any devices (e.g., network card,modem, etc.) that enable computer system/server 402 to communicate withone or more other computing devices. Such communication can occur viaInput/Output (I/O) interfaces 422. Still yet, computer system/server 402can communicate with one or more networks such as a local area network(LAN), a general wide area network (WAN), and/or a public network (e.g.,the Internet) via network adapter 424. As depicted, network adapter 424communicates with the other components of computer system/server 402 viabus 408. It should be understood that although not shown, other hardwareand/or software components could be used in conjunction with computersystem/server 402. Examples, include, but are not limited to: microcode,device drivers, redundant processing units, external disk drive arrays,RAID systems, tape drives, and data archival storage systems, etc.

The reference characters used herein, such as i, j, and n, are used todenote a variable number of instances of an element, which may representthe same or different values, and may represent the same or differentvalue when used with different or the same elements in differentdescribed instances.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, and “one embodiment” mean “one or more (but not all)embodiments of the present invention(s)” unless expressly specifiedotherwise.

The terms “including”, “comprising”, “having” and variations thereofmean “including but not limited to”, unless expressly specifiedotherwise.

The enumerated listing of items does not imply that any or all of theitems are mutually exclusive, unless expressly specified otherwise.

The terms “a”, “an” and “the” mean “one or more”, unless expresslyspecified otherwise.

Devices that are in communication with each other need not be incontinuous communication with each other, unless expressly specifiedotherwise. In addition, devices that are in communication with eachother may communicate directly or indirectly through one or moreintermediaries.

A description of an embodiment with several components in communicationwith each other does not imply that all such components are required. Onthe contrary a variety of optional components are described toillustrate the wide variety of possible embodiments of the presentinvention.

When a single device or article is described herein, it will be readilyapparent that more than one device/article (whether or not theycooperate) may be used in place of a single device/article. Similarly,where more than one device or article is described herein (whether ornot they cooperate), it will be readily apparent that a singledevice/article may be used in place of the more than one device orarticle or a different number of devices/articles may be used instead ofthe shown number of devices or programs. The functionality and/or thefeatures of a device may be alternatively embodied by one or more otherdevices which are not explicitly described as having suchfunctionality/features. Thus, other embodiments of the present inventionneed not include the device itself.

The foregoing description of various embodiments of the invention hasbeen presented for the purposes of illustration and description. It isnot intended to be exhaustive or to limit the invention to the preciseform disclosed. Many modifications and variations are possible in lightof the above teaching. It is intended that the scope of the invention belimited not by this detailed description, but rather by the claimsappended hereto. The above specification, examples and data provide acomplete description of the manufacture and use of the composition ofthe invention. Since many embodiments of the invention can be madewithout departing from the spirit and scope of the invention, theinvention resides in the claims herein after appended.

1. A method, comprising: determining whether a first storage drive isone of a first class and a second class of storage drives wherein thesecond class of storage drives has a performance characteristic whichexceeds a corresponding performance characteristic of the first class ofstorage drives; and track removal processing tracks cached in a firstcache as a function of whether the first storage drive is one of thefirst class and the second class of storage drives, said track removalprocessing including performing destage tasks, each destage taskincluding: selecting a first track for destaging from the first cache tothe first storage drive wherein the selected first track is representedby a first entry of a first cache list of entries representing trackscached in the first cache; if first storage drive is of the first class,removing the first entry from the first cache list and adding arepresentation of the first track as a second entry to a second cachelist of entries wherein the second entry represents the selected firsttrack; destaging the first track from the first cache to the firststorage drive; removing the second entry from the second cache list ifthe first storage drive is of the first class; and removing the firstentry from the first cache list if the first storage drive is of thesecond class wherein transferring the first entry is bypassed if firststorage drive is of the second class.
 2. The method of claim 1 whereinthe second class of storage drives has an input/output speed performancecharacteristic which exceeds a corresponding input/output speedperformance characteristic of the first class of storage drives.
 3. Themethod of claim 2 wherein said determining includes determining whetherthe first storage drive has an input/output speed performancecharacteristic which exceeds a threshold.
 4. The method of claim 3wherein said input/output speed performance characteristic of the firststorage drive is a function of an average latency of destaging a trackfrom the first cache to the first storage drive.
 5. The method of claim4 wherein the threshold is a function of a duration of time taken toobtain a list lock to the first cache list.
 6. The method of claim 1further comprising configuring destage tasks for the first cache list asa function of the determining whether the first storage drive is one ofa first class and a second class of storage drives.
 7. The method ofclaim 6 wherein configuring destage tasks includes configuring eachdestage task for the first storage drive to remove an entry from thefirst cache list and add an entry to the second cache list of entries ifthe first storage drive is determined to be of the first class, andconfiguring each destage task for the first storage drive to bypass bothremoving an entry from the first cache list and adding an entry to thesecond cache list of entries if the first storage drive is determined tobe of the second class.
 8. A device, comprising: a plurality of storagedrives including a first storage drive; a storage control unitconfigured to control the plurality of storage drives, the storagecontrol unit including: a memory having a first cache configured tocache tracks for the first storage drive, and a first data structureincluding a first cache list and a second cache list, each listconfigured to have entries configured to represent tracks cached in thefirst cache including a first entry configured to represent a firsttrack; and drive dependent track removal processing logic configured todetermine whether the first storage drive is one of a first class and asecond class of storage drives wherein the second class of storagedrives has a performance characteristic which exceeds a correspondingperformance characteristic of the first class of storage drives, and toperform destage tasks for tracks cached in the first cache as a functionof whether the first storage drive is one of the first class and thesecond class of storage drives, each destage task being configured to:select a first track for destaging from the first cache to the firststorage drive wherein the selected first track is represented by a firstentry of a first cache list of entries representing tracks cached in thefirst cache; if first storage drive is of the first class, remove thefirst entry from the first cache list and add a representation of thefirst track as to a second entry of a second cache list of entrieswherein the second entry is configured to represent the selected firsttrack; destage the first track from the first cache to the first storagedrive; remove the second entry from the second cache list if the firststorage drive is of the first class; and remove the first entry from thefirst cache list if the first storage drive is of the second classwherein transferring the first entry is bypassed if first storage driveis of the second class.
 9. The device of claim 8 wherein the secondclass of storage drives has an input/output speed performancecharacteristic which exceeds a corresponding input/output speedperformance characteristic of the first class of storage drives.
 10. Thedevice of claim 9 wherein the drive dependent track removal processinglogic has drive classification logic configured to determine whether thefirst storage drive has an input/output speed performance characteristicwhich exceeds a threshold.
 11. The device of claim 10 wherein saidinput/output speed performance characteristic of the first storage driveis a function of an average latency of destaging a track from the firstcache to the first storage drive.
 12. The device of claim 11 wherein thethreshold is a function of a duration of time taken to obtain a listlock to the first cache list.
 13. The device of claim 8 wherein thedrive dependent track removal processing logic has destage taskconfiguration logic configured to configure destage tasks for the firstcache list as a function of whether the first storage drive is one of afirst class and a second class of storage drives.
 14. The device ofclaim 13 wherein the destage task configuration logic is furtherconfigured to configure each destage task for the first storage drive toremove an entry from the first cache list and add an entry to the secondcache list of entries if the first storage drive is determined to be ofthe first class, and to configure each destage task for the firststorage drive to bypass both removing an entry from the first cache listand adding an entry to the second cache list of entries if the firststorage drive is determined to be of the second class.
 15. A computerprogram product for use in a computer system having a plurality ofstorage drives and a storage control unit having a cache and configuredto control read operations from and write operations to the storagedrives, wherein the computer program product comprises a computerreadable storage medium having program instructions embodied therewith,the program instructions executable by a processor of the computersystem to cause processor operations, the processor operationscomprising: determining whether a first storage drive is one of a firstclass and a second class of storage drives wherein the second class ofstorage drives has a performance characteristic which exceeds acorresponding performance characteristic of the first class of storagedrives; and track removal processing tracks cached in a first cache as afunction of whether the first storage drive is one of the first classand the second class of storage drives, said track removal processingincluding performing destage tasks, each destage task including:selecting a first track for destaging from the first cache to the firststorage drive wherein the selected first track is represented by a firstentry of a first cache list of entries representing tracks cached in thefirst cache; if first storage drive is of the first class, removing thefirst entry from the first cache list and adding a representation of thefirst track as a second entry to a second cache list of entries whereinthe second entry represents the selected first track; destaging thefirst track from the first cache to the first storage drive; removingthe second entry from the second cache list if the first storage driveis of the first class; and removing the first entry from the first cachelist if the first storage drive is of the second class whereintransferring the first entry is bypassed if first storage drive is ofthe second class.
 16. The computer program product of claim 15 whereinthe second class of storage drives has an input/output speed performancecharacteristic which exceeds a corresponding input/output speedperformance characteristic of the first class of storage drives.
 17. Thecomputer program product of claim 16 wherein said determining includesdetermining whether the first storage drive has an input/output speedperformance characteristic which exceeds a threshold.
 18. The computerprogram product of claim 17 wherein said input/output speed performancecharacteristic of the first storage drive is a function of an averagelatency of destaging a track from the first cache to the first storagedrive.
 19. The computer program product of claim 18 wherein thethreshold is a function of a duration of time taken to obtain a listlock to the first cache list.
 20. The computer program product of claim15 wherein the processor operations further comprise configuring destagetasks for the first cache list as a function of the determining whetherthe first storage drive is one of a first class and a second class ofstorage drives.
 21. The computer program product of claim 20 whereinconfiguring destage tasks includes configuring each destage task for thefirst drive to remove an entry from the first cache list and add anentry to the second cache list of entries if the first storage drive isdetermined to be of the first class, and configuring each destage taskfor the first storage drive to bypass both removing an entry from thefirst cache list and adding an entry to the second cache list of entriesif the first storage drive is determined to be of the second class.